Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, digital cameras, digital recording devices, digital media players, video gaming devices, video game consoles, cellular or satellite radio telephones, video teleconferencing devices, and the like. Digital video devices implement video compression techniques, such as those described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), or the emerging High Efficiency Video Coding (HEVC) standard, and extensions of such standards, to transmit and receive digital video information more efficiently.
Video compression techniques perform spatial prediction and/or temporal prediction to reduce or remove redundancy inherent in video sequences. For block-based video coding, a video picture or slice may be partitioned into video blocks or coding units (CUs). Video blocks in an intra-coded (I) slice are encoded using spatial prediction with respect to neighboring blocks in the same picture. Video blocks in an inter-coded (P or B) slice may use spatial prediction with respect to neighboring blocks in the same picture or temporal prediction with respect to other reference pictures. Video coding devices store lists of reference pictures in memory for use during inter-picture coding. The list of reference pictures with display times before the currently coded picture is referred to as List 0, while the list of reference pictures with display times after the current coded picture is referred to as List 1.
Video blocks in a P slice may be encoded using uni-direction prediction with a single motion vector pointing to a past reference picture in List 0. Video blocks in a B slice may be encoded using (a) uni-direction prediction with a single motion vector pointing to a past reference picture in List 0, (b) uni-directional prediction with a single motion vector pointing to a future reference picture in List 1, (c) or bi-prediction with two motion vectors pointing to past and future reference pictures in List 0 and List 1, respectively. The P and B slice classifications have since been expanded to include a generalized P/B (GPB) slice in which video blocks are encoded as a B slice, except List 0 and List 1 may include reference pictures in the same temporal direction or different temporal directions. In one specific example of a GPB slice, List 0 and List 1 may be identical.
Syntax elements defined to indicate reference picture list information are encoded and signaled to a decoding device in a slice header of a coded video slice. Upon receipt of the coded video slice and its associated syntax elements, the decoder performs reference picture list construction for List 0 and List 1 based on the syntax elements. For a B slice, each coded video block may have an associated syntax element, i.e., inter_pred_idc, to indicate whether the video block is bi-predicted (Bi), uni-directionally predicted in the forward direction from List 0 (Pred_L0), or uni-directionally predicted in the backward direction from List 1 (Pred_L1). The inter_pred_idc syntax element for a B slice, therefore, consumes two bits to indicate one of the three statuses: Bi, Pred_L0, or Pred_L1.